import type { R, TableDataInfo } from '@/api/model/resultModel';
import type { SysAgentForm, SysAgentQuery, SysAgentVo } from '@/api/system/model/agentModel';
import { request } from '@/utils/request';

/**
 * 查询代理商列表
 * @param query 查询参数
 */
export function listAgent(query?: SysAgentQuery) {
  return request.get<TableDataInfo<SysAgentVo>>({
    url: '/system/agent/list',
    params: query,
  });
}

/**
 * 查询代理商详细
 * @param agentId 主键
 */
export function getAgent(agentId: string) {
  return request.get<R<SysAgentVo>>({
    url: `/system/agent/${agentId}`,
  });
}

/**
 * 新增代理商
 * @param data 表单数据
 */
export function addAgent(data: SysAgentForm) {
  return request.post<R<void>>({
    url: '/system/agent',
    data,
  });
}

/**
 * 修改代理商
 * @param data
 */
export function updateAgent(data: SysAgentForm) {
  return request.put<R<void>>({
    url: '/system/agent',
    data,
  });
}

/**
 * 删除代理商
 * @param agentIds 主键串
 */
export function delAgent(agentIds: string | Array<string>) {
  return request.delete<R<void>>({
    url: `/system/agent/${agentIds}`,
  });
}
/**
 * 查询状态为启用的父级代理商列表
 * @param level 代理层级（可选，传空则查询所有层级）
 * @returns 返回包含代理商名称、ID和层级的列表
 */
export function getEnabledAgents(level?: string) {
  return request.get<R<Array<{
    agentId: string;
    agentName: string;
    level: string;
    parentAgentId: string;
  }>>>({
    url: '/system/agent/enabledAgents',
    params: { level }
  });
}

